
// MainFrm.h : interface of the CMainFrame class
//

#pragma once
#include "FileView.h"
//#include "ClassView.h"
#include "OutputWnd.h"
#include "PropertiesWnd.h"
#include "RenderBRDFSphere.h"

class CMainFrame : public CMDIFrameWndEx
{
	DECLARE_DYNAMIC(CMainFrame)
public:
	CMainFrame();

// Attributes
public:

// Operations
public:

// Overrides
public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd = NULL, CCreateContext* pContext = NULL);

// Implementation
public:
	virtual ~CMainFrame();
	CMFCPropertyGridCtrl* GetPropertyGridCtrl();
	CRenderBRDFSphere* GetSphereRender() {return &m_wndSphereRender;};
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
	//debug text output
	void OutputDebugText(const CString& cstr);
	
protected:  // control bar embedded members
	CMFCMenuBar       m_wndMenuBar;
	CMFCToolBar       m_wndToolBar;
	CMFCStatusBar     m_wndStatusBar;
	CMFCToolBarImages m_UserImages;
	CFileView         m_wndFileView;
	CRenderBRDFSphere m_wndSphereRender;
	//CClassView        m_wndClassView;
	COutputWnd        m_wndOutput;
	CPropertiesWnd    m_wndProperties;

// Generated message map functions
protected:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnWindowManager();
	afx_msg void OnViewCustomize();
	afx_msg LRESULT OnToolbarCreateNew(WPARAM wp, LPARAM lp);
	afx_msg void OnApplicationLook(UINT id);
	afx_msg void OnUpdateApplicationLook(CCmdUI* pCmdUI);
	afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
	afx_msg LRESULT OnRefreshProject(WPARAM, LPARAM);
	afx_msg LRESULT OnLoadXYZProcessing(WPARAM wParam, LPARAM lparam);
	afx_msg LRESULT OnLoadXYZStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnLoadXYZFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnProcessXYZStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnProcessXYZFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnProcessMXYZStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnProcessMXYZFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnNormEstUpdateStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnNormEstUpdateFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnRTHMStatStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnRTHMStatFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnRTVGonioStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnRTVGonioFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnRTVGonioMFilesStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnRTVGonioMFilesFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnComputeWBRDFSingleXYZStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnComputeWBRDFSingleXYZFinished(WPARAM,LPARAM);
	afx_msg LRESULT OnComputeWBRDFMultipleXYZStarted(WPARAM,LPARAM);
	afx_msg LRESULT OnComputeWBRDFMultipleXYZFinished(WPARAM,LPARAM);
	
	DECLARE_MESSAGE_MAP()

	BOOL CreateDockingWindows();
	void SetDockingWindowIcons(BOOL bHiColorIcons);
};


